// Storage.h: interface for the CStorage class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_STORAGE_H__B91369B3_A496_4F68_81AD_241EA62FD8B7__INCLUDED_)
#define AFX_STORAGE_H__B91369B3_A496_4F68_81AD_241EA62FD8B7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ItemsArray.h"
#include "ItemsMap.h"

class CStorage  
{
public:
	CStorage();
	virtual ~CStorage();

	virtual void GetRoles(CCopyableMap<CString,LPCTSTR,CStringItemsArray,CStringItemsArray&> & mapRoles) =0;
	virtual void AddRole(const CString &strRoleName, const CStringItemsArray &arrAdmittanceGatewaysNames) =0;
	virtual void UpdateRole(const CString &strOriginalRoleName, const CString &strNewRoleName, const CStringItemsArray &arrAdmittanceGatewaysNames) =0;
	virtual void DeleteRole(const CString &strRoleName) =0;
	virtual void SetUserGroupDefaultRole(const CString &strGroupName, const CStringItemsArray &arrDefaultRoles) =0;
	virtual void SetUserRole(const CString &strUserName, const CStringItemsArray &arrRolesNames) =0;
};

#endif // !defined(AFX_STORAGE_H__B91369B3_A496_4F68_81AD_241EA62FD8B7__INCLUDED_)
